package cn.gogpay.dcb.api.feign;

import cn.gogpay.dcb.api.dto.qrcode.*;
import cn.gogpay.dcb.api.feign.form.DrivingV2Form;
import cn.gogpay.dcb.api.feign.impl.ApiPlatformClientImpl;
import cn.gogpay.dcb.common.dto.ResultDTO;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.context.annotation.Primary;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * api-platform client
 *
 * @author jiaoming@gogpay.cn
 * @date 2019/11/22 21:34
 * ,url = "192.168.2.133:8323"
 */
@Primary
@FeignClient(name = "api-platform", fallback = ApiPlatformClientImpl.class)
public interface ApiPlatformClient {


    /**
     * 余额查询
     *
     * @return
     */
    @PostMapping("/traffic/bus/xuChangCity/qrCode/getBalance")
    ResultDTO getBalance(@RequestBody GetBalanceDTO getBalanceDTO);

    /**
     * 拉取二维码
     *
     * @return
     */
    @PostMapping("/traffic/bus/xuChangCity/qrCode/pullQrCode")
    ResultDTO pullQrCode(@RequestBody PullQrCodeDTO pullQrCodeDTO);

    /**
     * 充值
     *
     * @return
     */
    @PostMapping("/traffic/bus/xuChangCity/qrCode/recharge")
    ResultDTO qrCodeRecharge(@RequestBody QrCodeChargeDTO qrCodeChargeDTO);


    /**
     * 查询乘车明细
     *
     * @return
     */
    @PostMapping("/traffic/bus/xuChangCity/qrCode/consumeRecord")
    ResultDTO consumeRecord(@RequestBody QueryConsumeRecordDTO queryConsumeRecordDTO);

    /**
     * 开卡请求接口
     *
     * @return
     */
    @PostMapping("/traffic/bus/xuChangCity/qrCode/activateCard")
    ResultDTO activateCard(@RequestBody ActivateCardDTO activateCardDTO);


    /**
     * 失物招领
     *
     * @return
     */
    @PostMapping("/traffic/bus/xuChangCity/getLoseList")
    ResultDTO getLostList();

    /**
     * 网点分布
     *
     * @return
     */
    @PostMapping("/traffic/bus/xuChangCity/getBankShowNodeList")
    ResultDTO getBankShowNodeList();

    /**
     * 新闻资讯
     *
     * @return
     */
    @PostMapping("/traffic/bus/xuChangCity/getNewsList")
    ResultDTO getNewsList();

    /**
     * 驾驶证校验
     *
     * @param form
     * @return
     */
    @PostMapping("/xuchangPolice/gonganjsz")
    ResultDTO gonganjsz(@RequestBody DrivingV2Form form);
}

